﻿// 4381. 翻转树边.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://www.acwing.com/problem/content/4384/

给定一个 n
 个节点的树。

节点编号为 1∼n
。

树中的 n−1
 条边均为单向边。

现在，我们需要选取一个节点作为中心点，并希望从中心点出发可以到达其他所有节点。

但是，由于树中的边均为单向边，所以在选定中心点后，可能无法从中心点出发到达其他所有节点。

为此，我们需要翻转一些边的方向，从而使得所选中心点可以到达其他所有节点。

我们希望选定中心点后，所需翻转方向的边的数量尽可能少。

请你确定哪些点可以选定为中心点，并输出所需的最少翻转边数量。

输入格式
第一行包含整数 n
。

接下来 n−1
 行，每行包含两个整数 a,b
，表示存在一条从 a
 到 b
 的单向边。

输出格式
第一行输出一个整数，表示所需的最少翻转边数量。

第二行以升序顺序输出所有可选中心点（即所需翻转边数量最少的中心点）的编号。

数据范围
前三个测试点满足 2≤n≤5
。
所有测试点满足 2≤n≤2×105
，1≤a,b≤n
，a≠b
。

输入样例1：
3
2 1
2 3
输出样例1：
0
2
输入样例2：
4
1 4
2 4
3 4
输出样例2：
2
1 2 3
*/

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 